Skip to content

feat: PostHog analytics, CI workflow, deployment docs & security fixes#8

Merged
diogohudson merged 3 commits intomainfrom
feat/posthog-ci-deployment
Mar 10, 2026
Merged

feat: PostHog analytics, CI workflow, deployment docs & security fixes#8
diogohudson merged 3 commits intomainfrom
feat/posthog-ci-deployment

Conversation

@diogohudson
Copy link
Copy Markdown
Contributor

Summary

  • PostHog analytics instrumented on both UI (posthog-js) and backend (posthog-python) with custom events for secret creation, retrieval, and link copying
  • Critical security fix: sanitize_properties strips #fragment (encryption key) from all URL properties before sending to PostHog
  • GitHub Actions CI workflow with parallel API + UI test jobs, Redis service container, and 99% coverage enforcement
  • Deployment docs in README (Cloud at ooshare.io + On-Premise self-hosted)
  • Environment config: .env files per service with .env.template for git, docker-compose env_file directive
  • Portuguese translations: fixed all missing diacritics/accents
  • Crypto fix: importKey ArrayBuffer compatibility for Node/jsdom

Test plan

  • All 66 UI tests pass with 98.8% line coverage
  • All 32 API tests pass with 99%+ coverage
  • TypeScript compiles cleanly (tsc --noEmit)
  • Verify PostHog events no longer contain #fragment in production
  • Verify old UUID-format links still resolve (backward compat)
  • Verify alias short links work end-to-end

🤖 Generated with Claude Code

diogohudson and others added 3 commits March 10, 2026 11:50
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…agments

PostHog was capturing full URLs including #fragment which contains the
encryption key. Added sanitize_properties callback to strip fragments
from all URL-related properties. Also added .env templates, gitignored
.env files, and configured docker-compose env_file for API service.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The Python PostHog SDK batches events asynchronously. Without explicit
flush(), events were queued but never sent in the Flask request cycle.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@diogohudson diogohudson merged commit d917016 into main Mar 10, 2026
1 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant